package com.zhuss.excecise.db.dao.ext;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zhuss.bean.vo.excecise.excecise.DetailExceciseTopicVo;
import com.zhuss.excecise.db.dao.gen.ExceciseTopicMapper;
import com.zhuss.excecise.db.entity.ExceciseTopic;

@Mapper
public interface ExceciseTopicDao extends ExceciseTopicMapper {
	
	void create(ExceciseTopic record);
	
	int delete(ExceciseTopic record);
	
	int deleteByParent(ExceciseTopic record);
	
	void deleteBatch(@Param("exceciseTopicIdList") List<Long> exceciseTopicIdList, @Param("deleted") Integer deleted, @Param("modifierId") Long modifierId,
			@Param("modifier") String modifier, @Param("modifyTime") Date modifyTime);
	
	void deleteByParentBatch(@Param("exceciseTopicIdList") List<Long> exceciseTopicIdList, @Param("deleted") Integer deleted, @Param("modifierId") Long modifierId,
			@Param("modifier") String modifier, @Param("modifyTime") Date modifyTime);
	
	List<ExceciseTopic> listAll(@Param("area") Integer area, @Param("exceciseId") Long exceciseId);
	
	DetailExceciseTopicVo detail(@Param("exceciseTopicId") Long exceciseTopicId);
	
	List<Long> listSon(@Param("exceciseTopicIdList") List<Long> exceciseTopicIdList);

	List<DetailExceciseTopicVo> listTopic(@Param("exceciseId") Long exceciseId, @Param("parent") Long parent);
    
}